import { REQUIREMENTS } from '@/services/api'
import { request, METHOD } from '@/utils/request'

/**
 * 需求列表
 * @param searchData 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function list(searchData) {
  return await request(REQUIREMENTS, METHOD.GET, {
    ...searchData
  })
}
/**
 * 需求详情
 * @param id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function detail(id) {
  return await request(REQUIREMENTS + '/detail', METHOD.GET, {
    id
  })
}
/**
 * 新增需求
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function add(data) {
  return request(REQUIREMENTS + '/insert', METHOD.POST, {
    ...data
  })
}
/**
 * 编辑需求
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function edit(data) {
  return request(REQUIREMENTS + '/edit', METHOD.POST, {
    ...data
  })
}
/**
 * 删除需求
 * @param {String/Array} ids 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function deleteItem(ids) {
  return request(REQUIREMENTS + '/delete', METHOD.POST, {
    ids
  })
}
/**
 * 中止需求
 * @param {String/Array} id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function suspend({ key, requirement_id }) {
  return request(REQUIREMENTS + '/suspend', METHOD.POST, {
    id: requirement_id,
    status_id: key
  })
}
/**
 * 新增需求调研
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function surveyAdd(data) {
  return request(REQUIREMENTS + '/survey_insert', METHOD.POST, {
    ...data
  })
}
/**
 * 编辑需求调研
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function surveyEdit(data) {
  return request(REQUIREMENTS + '/survey_edit', METHOD.POST, {
    ...data
  })
}
/**
 * 需求详情
 * @param id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function surveyDetail(id) {
  return await request(REQUIREMENTS + '/survey', METHOD.GET, {
    requirement_id: id
  })
}
/**
 * 新增需求联系人
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function addLink(data) {
  return request(REQUIREMENTS + '/link', METHOD.POST, {
    ...data
  })
}
/**
 * 删除需求追踪日志
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function logDelete(data) {
  return request(REQUIREMENTS + '/log_delete', METHOD.POST, {
    ...data
  })
}
/**
 * 添加需求追踪日志
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function linkLog(data) {
  return request(REQUIREMENTS + '/log_save', METHOD.POST, {
    ...data
  })
}

/**
 * 分配任务查询数据
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function task(data) {
  return request(REQUIREMENTS + '/task', METHOD.GET, {
    ...data
  })
}
/**
 * 分配任务查询数据
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function addChange({ content, requirement_id }) {
  return request(REQUIREMENTS + '/add_change', METHOD.POST, {
    requirement_id: requirement_id,
    content: content
  })
}

/**
 * 获取需求变更列表
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function changes(requirement_id) {
  return request(REQUIREMENTS + '/changes', METHOD.GET, {

    id: requirement_id
  })
}
/**
 * 获取需求变更列表
 * @param data 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function changeStatus({change_id,status}) {

  return request(REQUIREMENTS + '/change_status', METHOD.POST, {
    id: change_id,
    status:status
  })
}


/**
 * 验收该需求
 * @param {String/Array} id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function accept({requirement_id }) {
  return request(REQUIREMENTS + '/accept', METHOD.POST, {
    id: requirement_id,
  })
}

/**
 * 根据需求id获取其任务情况
 * @param {String/Array} id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function tasks(requirement_id ) {
  return request(REQUIREMENTS + '/tasks', METHOD.GET, {
    id: requirement_id,
  })
}

/**
 * 需求选择列表
 * @param {String/Array} id 需要提交的数据
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function getRequirementList() {
  return request(REQUIREMENTS + '/list', METHOD.GET, {
   
  })
}



